// Shows how to find client or server applications that meet the specified filters, using the global discovery client. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . using System; using OpcLabs.EasyOpc.UA.Discovery; using OpcLabs.EasyOpc.UA.Gds; using OpcLabs.EasyOpc.UA.OperationModel; namespace UADocExamples.Gds._EasyUAGlobalDiscoveryClient { class QueryApplications { public static void Main1() { // Instantiate the global discovery client object var globalDiscoveryClient = new EasyUAGlobalDiscoveryClient(); // Find all (client or server) applications registered in the GDS. UAApplicationDescription[] applicationDescriptionArray; try { globalDiscoveryClient.QueryApplications( gdsEndpointDescriptor:"opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer", startingRecordId:0, maximumRecordsToReturn:0, applicationName:"", applicationUriString:"", applicationTypes:UAApplicationTypes.All, productUriString:"", serverCapabilities:new string[0], lastCounterResetTime:out _, nextRecordId: out _, applications: out applicationDescriptionArray); } catch (UAException uaException) { Console.WriteLine("*** Failure: {0}", uaException.GetBaseException().Message); return; } // Display results foreach (UAApplicationDescription applicationDescription in applicationDescriptionArray) { Console.WriteLine(); Console.WriteLine("Application name: {0}", applicationDescription.ApplicationName); Console.WriteLine("Application type: {0}", applicationDescription.ApplicationType); Console.WriteLine("Application URI string: {0}", applicationDescription.ApplicationUriString); Console.WriteLine("Discovery URI strings: {0}", applicationDescription.DiscoveryUriStrings); } } } }
# Shows how to find all registrations in the GDS. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python . # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc # Import .NET namespaces. from System import * from OpcLabs.EasyOpc.UA import * from OpcLabs.EasyOpc.UA.Discovery import * from OpcLabs.EasyOpc.UA.Gds import * from OpcLabs.EasyOpc.UA.OperationModel import * # Define which GDS we will work with. gdsEndpointDescriptor = UAEndpointDescriptor('opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer') # Instantiate the global discovery client object. globalDiscoveryClient = EasyUAGlobalDiscoveryClient() # Find all (client or server) applications registered in the GDS. try: _, _, _, applicationDescriptionArray = globalDiscoveryClient.QueryApplications( gdsEndpointDescriptor, 0, # startingRecordId 0, # maximumRecordsToReturn '', # applicationName '', # applicationUriString UAApplicationTypes.All, # applicationTypes '', # productUriString Array.Empty[String](), # serverCapabilities DateTime(), # out lastCounterResetTime 0, # out nextRecordId Array.Empty[UAApplicationDescription]()) # out applications except UAException as uaException: print('*** Failure: ' + uaException.GetBaseException().Message) exit() # Display results. for applicationDescription in applicationDescriptionArray: print() print('Application name: ', applicationDescription.ApplicationName, sep='') print('Application type: ', applicationDescription.ApplicationType, sep='') print('Application URI string: ', applicationDescription.ApplicationUriString, sep='') print('Discovery URI strings: ', applicationDescription.DiscoveryUriStrings, sep='') print() print('Finished.')
' Shows how to find client or server applications that meet the specified filters, using the global discovery client. ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Imports OpcLabs.EasyOpc.UA.Discovery Imports OpcLabs.EasyOpc.UA.Gds Imports OpcLabs.EasyOpc.UA.OperationModel Namespace Gds._EasyUAGlobalDiscoveryClient Friend Class QueryApplications Public Shared Sub Main1() ' Instantiate the global discovery client object Dim globalDiscoveryClient = New EasyUAGlobalDiscoveryClient() ' Find all (client or server) applications registered in the GDS. Dim applicationDescriptionArray() As UAApplicationDescription = Nothing Try Dim lastCounterResetTime As DateTime Dim nextRecordId As Long globalDiscoveryClient.QueryApplications( gdsEndpointDescriptor:="opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer", startingRecordId:=0, maximumRecordsToReturn:=0, applicationName:="", applicationUriString:="", applicationTypes:=UAApplicationTypes.All, productUriString:="", serverCapabilities:=New String() {}, lastCounterResetTime:=lastCounterResetTime, nextRecordId:=nextRecordId, applications:=applicationDescriptionArray) Catch uaException As UAException Console.WriteLine("*** Failure: {0}", uaException.GetBaseException.Message) Exit Sub End Try ' Display results For Each applicationDescription As UAApplicationDescription In applicationDescriptionArray Console.WriteLine() Console.WriteLine("Application name: {0}", applicationDescription.ApplicationName) Console.WriteLine("Application type: {0}", applicationDescription.ApplicationType) Console.WriteLine("Application URI string: {0}", applicationDescription.ApplicationUriString) Console.WriteLine("Discovery URI strings: {0}", applicationDescription.DiscoveryUriStrings) Next applicationDescription End Sub End Class End Namespace
// Shows how to find client or server applications that meet the specified filters, using the global discovery client. // // Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . class procedure QueryApplications.Main; var ApplicationDescription: _UAApplicationDescription; ApplicationDescriptionArray: OleVariant; ApplicationName: WideString; ApplicationUriString: WideString; GlobalDiscoveryClient: OpcLabs_EasyOpcUA_TLB._EasyUAGlobalDiscoveryClient; GdsEndpointDescriptor: _UAEndpointDescriptor; I: integer; LastCounterResetTime: TDateTime; MaximumRecordsToReturn: Integer; NextRecordId: Integer; ProductUriString: WideString; ServerCapabilities: array of string; StartingRecordId: Integer; begin // Define which GDS we will work with. GdsEndpointDescriptor := CoUAEndpointDescriptor.Create; GdsEndpointDescriptor.UrlString := 'opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer'; // Instantiate the global discovery client object GlobalDiscoveryClient := CoEasyUAGlobalDiscoveryClient.Create; // Find all (client or server) applications registered in the GDS. StartingRecordId := 0; MaximumRecordsToReturn := 0; ApplicationName := ''; ApplicationUriString := ''; ProductUriString := ''; try GlobalDiscoveryClient.QueryApplications( GdsEndpointDescriptor, StartingRecordId, MaximumRecordsToReturn, ApplicationName, ApplicationUriString, UAApplicationTypes_All, ProductUriString, ServerCapabilities, LastCounterResetTime, NextRecordId, ApplicationDescriptionArray); except on E: EOleException do begin WriteLn(Format('*** Failure: %s', [E.GetBaseException.Message])); end; end; // Display results for I := VarArrayLowBound(ApplicationDescriptionArray,1) to VarArrayHighBound(ApplicationDescriptionArray,1) do begin ApplicationDescription := IUnknown(ApplicationDescriptionArray[I]) as _UAApplicationDescription; WriteLn; WriteLn('Application name: ', ApplicationDescription.ApplicationName); WriteLn('Application type: ', ApplicationDescription.ApplicationType); WriteLn('Application URI string: ', ApplicationDescription.ApplicationUriString); WriteLn('Discovery URI strings: ', ApplicationDescription.DiscoveryUriStrings.ToString); end; end;
REM Shows how to find client or server applications that meet the specified filters, using the global discovery client. REM REM Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Private Sub EasyUAGlobalDiscoveryClient_QueryApplications_Main_Command_Click() OutputText = "" ' Define which GDS we will work with. Dim gdsEndpointDescriptor As New UAEndpointDescriptor gdsEndpointDescriptor.UrlString = "opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer" ' Instantiate the global discovery client object Dim globalDiscoveryClient As New EasyUAGlobalDiscoveryClient ' Find all (client or server) applications registered in the GDS. Dim startingRecordId As Long: startingRecordId = 0 Dim maximumRecordsToReturn As Long: maximumRecordsToReturn = 0 Dim applicationName As String: applicationName = "" Dim applicationUriString As String: applicationUriString = "" Dim productUriString As String: productUriString = "" Dim serverCapabilities: serverCapabilities = Array() Dim lastCounterResetTime As Date Dim nextRecordId As Long Dim applicationDescriptionArray As Variant On Error Resume Next Dim applicationId As UANodeId Call globalDiscoveryClient.QueryApplications( _ gdsEndpointDescriptor, _ startingRecordId, _ maximumRecordsToReturn, _ applicationName, _ applicationUriString, _ UAApplicationTypes_All, _ productUriString, _ serverCapabilities, _ lastCounterResetTime, _ nextRecordId, _ applicationDescriptionArray) If Err.Number <> 0 Then OutputText = OutputText & "*** Failure: " & Err.Source & ": " & Err.Description & vbCrLf Exit Sub End If On Error GoTo 0 ' Display results Dim i: For i = LBound(applicationDescriptionArray) To UBound(applicationDescriptionArray) Dim applicationDescription As UAApplicationDescription Set applicationDescription = applicationDescriptionArray(i) OutputText = OutputText & vbCrLf OutputText = OutputText & "Application name: " & applicationDescription.applicationName & vbCrLf OutputText = OutputText & "Application type: " & applicationDescription.ApplicationType & vbCrLf OutputText = OutputText & "Application URI string: " & applicationDescription.applicationUriString & vbCrLf OutputText = OutputText & "Discovery URI strings: " & applicationDescription.DiscoveryUriStrings.ToString & vbCrLf Next End Sub
Copyright © 2004-2024 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Send Documentation Feedback. Resources: Knowledge Base, Product Downloads. Technical support: Online Forums, FAQ.Missing some example? Ask us for it on our Online Forums! You do not have to own a commercial license in order to use Online Forums, and we reply to every post.